package cn.wit.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

/**
 * 文件读取练习
 * 1. 第一行是表头、需要从数据里面排除。 
 * 2. 文件的编码是gbk、注意乱码问题。
 * 
 * @author 16604
 *
 */

public class DemoFileReaderExercise {
	
	
	//先练习把文件全解析出来
	@Test
	public void test() {
		
		String path = "D:\\暑期作业与笔记\\camp\\code\\day11\\data\\scores.csv";
		
		//定义两个map集合来存放，一个放高等代数，一个放线性代数
		Map<String,String>  linearAlgebra = new HashMap<>();
		Map<String,String>  advancedAlgebra = new HashMap<>();
        
		try(
				FileInputStream in = new FileInputStream(path);
				BufferedReader reader = new BufferedReader(new InputStreamReader(in,"gbk"));
				//三层设计模式，先用Buffered包着字符流，再用字符流包着字节流，在字符流里面设计编码
				
		){
			
			reader.readLine();//第一行信息，为标题信息，不用,如果需要，注释掉 
			 
			String line = null;
			
			
			while((line=reader.readLine())!=null){  
                
				String item[] = line.split(",");//CSV格式文件为逗号分隔符文件，这里根据逗号切分 
                  
                String grade = item[item.length-5];//这就是你要的数据了
                
                String name = item[item.length-3];//这是学生姓名
                
                String course =item[item.length-4];//课程
                
                if(course.equals("线性代数")) {
                	System.out.println("成功");
                }
                linearAlgebra.put(name, grade);  
            }  
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
//		return linearAlgebra;
		
	}

}
